/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.unipar.oficina.service.cadastros;

import br.com.unipar.oficina.modelo.cadastros.Colaborador;
import br.com.unipar.oficina.modelo.cadastros.Curso;
import br.com.unipar.oficina.modelo.cadastros.CursoColaborador;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.criterion.MatchMode;
import org.hibernate.criterion.Restrictions;
import org.springframework.stereotype.Service;

/**
 *
 * @author Thiago Marques
 */
@Service("cursoService")
public class CursoServiceImpl
        extends GenericServiceImpl<Curso>
        implements CursoService {

    
    @Override
    public List<Curso> consultar(String nomeCurso) {
        Criteria crit = ((Session) entityManager.getDelegate()).createCriteria(Curso.class);
        if (nomeCurso != null) {
            crit.add(Restrictions.ilike("nomeCurso", nomeCurso, MatchMode.ANYWHERE));
        }
        return crit.list();
    }
        
    @Override
    public Curso getByIdCurso(Long id) {
        return entityManager.find(Curso.class, id);
    }

    @Override
    public Colaborador getByIdColaborador(Long id) {
        return entityManager.find(Colaborador.class, id);
    }

    @Override
    public List<Colaborador> getColaboradores() {
        Criteria crit = ((Session) entityManager.getDelegate()).createCriteria(Colaborador.class);
        return crit.list();
    }

    @Override
    public List<Curso> getCursos(Colaborador nomeColaborador) {
        Criteria crit = ((Session) entityManager.getDelegate()).createCriteria(Curso.class);
        crit.add(Restrictions.eq("colaborador", nomeColaborador));
        return crit.list();
    }
    
//    @Override
//    public List<Curso> consultar(String nomeCurso, String coordenador) {
//        Criteria crit = ((Session) entityManager.getDelegate()).createCriteria(Curso.class);
//        if (nomeCurso != null) {
//            crit.add(Restrictions.ilike("nomeCurso", nomeCurso, MatchMode.ANYWHERE));
//        }
//        return crit.list();
//    }
//    @Override
//    public Curso getByIdCurso(Long id) {
//        return entityManager.find(Curso.class, id);
//    }
//
//    @Override
//    public Colaborador getByIdColaborador(Long id) {
//        return entityManager.find(Colaborador.class, id);
//    }
//
//    @Override
//    public List<Colaborador> getColaboradores() {
//        Criteria crit = ((Session) entityManager.getDelegate()).createCriteria(CursoColaborador.class);
//        return crit.list();
//    }
//
//    @Override
//    public List<Curso> getCursos(Colaborador nomeColaborador) {
//        Criteria crit = ((Session) entityManager.getDelegate()).createCriteria(Colaborador.class);
//        crit.add(Restrictions.eq("colaborador", nomeColaborador));
//        return crit.list();
//    }


}
